In virtualization environments, many virtual machine (VM) images have similar operating systems, application and/or library installations and development environments. Harnessing the similarity can help avoid duplicate work carried out for disk input/output (I/O) requests that repeatedly fetch the same content. For example, I/O de-duplication by identifying duplicate content across fixed-size blocks within the same VM has been shown to improve disk performance. However, variable-size chunks often assist in identifying more similarities across VM images than fixed-size blocks. Accordingly, a need exists to carry out de-duplication based on variable-sized blocks (also referred to herein as chunks) across multiple VMs such that change is minimally intrusive and has minimal performance impact.